home *** CD-ROM | disk | FTP | other *** search
/ Libris Britannia 4 / science library(b).zip / science library(b) / PROGRAMM / BASIC / 0156.ZIP / DB3-PAT.LBR / DB3V110.UNP < prev    next >
Text File  |  1985-06-06  |  5KB  |  98 lines

  1.                  dBase III version 1.10  -  Unprotect
  2.                                                     by The Lone Victor
  3.  
  4.      The following instructions show you how to bypass the SoftGuard
  5. copy protection scheme used on dBase III version 1.10.  This is the same
  6. scheme used for FrameWork 1.10 and for Wordstar 2000 1.00.  Wordstar
  7. 2000 version 1.10 does not use a copy protection scheme, while versions
  8. 1.00 of dBase III and FrameWork used ProLock.  To unprotect Prolock disks
  9. read the file PROLOCK.UNP.
  10.  
  11.      First, using your valid, original dBase III diskette, install it on
  12. a fixed disk.  Softguard hides three files in your root directory: 
  13. CML0200.HCL, VDF0200.VDW, and DBASE.EXE.  It also copies DBASE.COM into
  14. your chosen dBase directory.  DBASE.EXE is the real dBase III program,
  15. encrypted.  When you run dbase, the program DBASE.COM loads CML0200.HCL
  16. high in memory and runs it.  CML decrypts itself and reads VDF0200.VDW. 
  17. The VDF file contains some code and data from the fixed disk FAT at the
  18. time of installation.  By comparing the information in the VDF file with
  19. the current FAT, CML can tell if the CML, VDF, and DBASE.EXE files are
  20. in the same place on the disk where they were installed.  If they have
  21. moved, say from a backup & restore, then dBase will not run.
  22.  
  23.      Second, un-hide the three files in the root directory.  You can do
  24. this with the programs ALTER.COM or FM.COM found on any BBS.
  25.  
  26.      Make copies of the three files, and of DBASE.COM, into some other
  27. directory.
  28.  
  29.      Hide the three root files again using ALTER or FM.
  30.  
  31.      Following the dBase instructions, UNINSTALL dBase III.  You can now
  32. put away your original dBase diskette.  We are done with it.
  33.  
  34.      Next we will make some patches to CML0200.HCL to allow us to trace
  35. through the code in DEBUG.  These patches will keep it from killing our
  36. interrupt vectors.
  37.  
  38. debug cml0200.hcl
  39. e 3F9 <CR>  2A.4A <CR>          ; change the 2A to 4A
  40. e 49D <CR>  F6.16 <CR>          ;  if any of these numbers don't show up
  41. e 506 <CR>  E9.09 <CR>          ;  it's not working.
  42. e A79 <CR>  00.20 <CR>          ;
  43. e AE9 <CR>  00.20 <CR>          ;
  44. e 73C  97 FA FA F4 F1 7E <CR>   ; this is an encrypted call to 0:300
  45. w                               ; write out the new CML file
  46. q                               ; quit debug
  47.  
  48.  
  49.      Now copy your four saved files back into the root directory and
  50. hide the CML0200.HCL, VDF0200.VDW, and DBASE.EXE files using ALTER or FM.
  51.  
  52.      We can now run DBASE.COM using DEBUG, trace just up to the point
  53. where it has decrypted DBASE.EXE, then write that file out.
  54.  
  55. debug dbase.com
  56. r <CR>                          ; write down the value of DS for use below.
  57. a 0:300 <CR>                    ; we must assemble some code here
  58.         pop     ax
  59.         cs:
  60.         mov     [320],ax        ; save return address
  61.         pop     ax
  62.         cs:
  63.         mov     [322],ax
  64.         push    es              ; set up stack the way we need it
  65.         mov     ax,20
  66.         mov     es,ax
  67.         mov     ax,0
  68.         cs:
  69.         jmp     far ptr [320]   ; jump to our return address
  70.  <CR>
  71. g 406                           ; now we can trace CML
  72. t
  73. g 177                           ; this stuff just traces past some
  74. g 1E9                           ;   encryption routines.
  75. t
  76. g 54E                           ; wait while reading VDF & FAT
  77. g=559 569
  78. g=571 857                       ; DBASE.EXE has been decrypted
  79. rBX <CR>                        ; length DBASE.EXE = 1AC00 bytes
  80. :1                              ; set BX to 1
  81. rCX <CR>
  82. :AC00                           ; set CX to AC00.  
  83. nDBASE                          ; name of file to write to
  84. w XXXX:100                      ; where XXXX is the value of DS that
  85.                                 ;   you wrote down at the begining.
  86. q                               ; quit debug
  87.  
  88.      Last, unhide and delete the three root files CML0200.HCL, VDF0200.VDW, 
  89. and DBASE.EXE.  Delete DBASE.COM and rename DBASE to DBASE.EXE.  This is the 
  90. real dBase III program without any SoftGuard code or encryption.  It requires 
  91. only the DBASE.OVL file to run.
  92.  
  93.      If you have any comments on this unprotect routine or the PROLOCK.UNP
  94. routine, please leave them on the Atlanta PCUG BBS (404) 634-5731.
  95.  
  96.                                           The Lone Victor - 4/15/85
  97.